#pragma once

// {DB6837E8-6761-4ca2-9849-B4B4C823E10D}
static const GUID IID_IKsPropertySplitter = 
{ 0xdb6837e8, 0x6761, 0x4ca2, { 0x98, 0x49, 0xb4, 0xb4, 0xc8, 0x23, 0xe1, 0xd } };

#define EC_ResetDuration	EC_USER + 0x994
#define EC_EndReindex		EC_USER + 0x995
#define EC_PlayFilePos		EC_USER + 0x996
#define EC_BufferProgress	EC_USER + 0x997
#define EC_NewPlayPos		EC_USER + 0x998
#define EC_NewFilePos		EC_USER + 0x999

enum ESetPropertyType { ESPT_Duration, ESPT_ReadFilePos, ESPT_Pause, };
enum EGetPropertyType { EGPT_IsWholeFile, EGPT_ReindexSecond, };

[uuid("DB6837E8-6761-4ca2-9849-B4B4C823E10D")]
class IKsPropertySplitter
{
public:
	virtual HRESULT SetProperty(__int64 i64PropertyValue, ESetPropertyType ePropertyType) = 0;
	virtual HRESULT GetProperty(DWORD* pdwPropertyValue, EGetPropertyType ePropertyType) = 0;

	virtual HRESULT GetFileName(LPTSTR pstrFileName, int nBuffLen) = 0;
};